
#pragma once

#include "zAcGiEnvironment.h"

class UcGiViewportTraits : public UcGiDrawableTraits
{
public:
    UCRX_DECLARE_MEMBERS(UcGiViewportTraits);

    virtual void setBackground(const UcDbObjectId backgroundId) = 0;
    virtual UcDbObjectId        background () const = 0;

    enum DefaultLightingType {
        kOneDistantLight = 0,
        kTwoDistantLights,
        kBackLighting,
    };
    virtual bool isDefaultLightingOn() const = 0;
    virtual void setDefaultLightingOn(bool on) = 0;
    virtual DefaultLightingType defaultLightingType() const = 0;
    virtual void setDefaultLightingType(DefaultLightingType typ) = 0;

    virtual void setAmbientLightColor(const UcCmColor& clr) = 0;
    virtual UcCmColor ambientLightColor() const = 0;

    virtual void setBrightness (double brightness) = 0;
    virtual double brightness() const = 0;

    virtual void setContrast (double contrast) = 0;
    virtual double contrast() const = 0;

    virtual void setRenderEnvironment (const UcDbObjectId renderEnvId) = 0;
    virtual UcDbObjectId renderEnvironment () const = 0;

    virtual void setRenderSettings (const UcDbObjectId renderSettingsId) = 0;
    virtual UcDbObjectId renderSettings () const = 0;
    virtual void setToneOperatorParameters(const UcGiToneOperatorParameters& params) = 0;
    virtual void toneOperatorParameters(UcGiToneOperatorParameters& params) const = 0;
};
